1. Field of the Invention
This invention relates generally to asynchronous data communication among a bus master and a plurality of bus users. More particularly, this invention relates to methods and apparatus for providing redundancy between a pair of bus users.
2. State of the Art
Data communication among a bus master and a plurality of bus users is well known in the art. Such communication systems generally include a bidirectional data bus to which the bus master and all of the bus users are connected. The bus master typically produces at least one synchronizing clock signal which is received by all of the bus users on a clock bus separate from the data bus. One data unit which is equal to the bus width can be transferred onto the bus or off the bus during one clock cycle. While all bus users can transfer data off the bus simultaneously, only one bus user can transfer data onto the bus during any given clock cycle. The bus user (which could be the bus master) transferring data onto the bus is said to have “access” or to be “active”. In order to determine which bus user is given access during a given clock cycle, an arbitration procedure is established. Typically, each bus user is assigned a time slot in a fixed number of time slots called a data “frame”. The frame which defines bus access may be provided with one or more time slots for the exchange of control information in addition to the time slots which are assigned to data transfer. As the clock cycles are received by all of the bus users via the clock bus, each bus user waits for its assigned time slot and then transfers data to the bus during its assigned cycle.
It is recognized that, particularly in asynchronous data transfer systems, bus users are not always ready to transfer data onto the bus during their assigned time slot. Conversely, other bus users may accumulate data for transfer onto the bus faster than their assigned access to the frame will allow them to transfer the data onto the bus. Consequently, it is often desirable to adjust the access mechanism to allow some users relatively more access than others; i.e., more slots in the frame. Many sophisticated algorithms have been developed for arbitrating bus access. However, these known systems typically require that each bus user be aware of the arbitration scheme so that each bus user can tell how much access it has been allocated.
Previously incorporated co-owned U.S. Pat. Nos. 5,901,146 and 6,104,724 disclose an asynchronous data transfer and source traffic control system as shown in prior art FIG. 2. The system includes a bus master 100 and a plurality of bus users, e.g. 112, 114, 116, coupled to a bidirectional data bus 118. The bus master 100 provides two clock signals to each bus user, a system clock 120 and a frame clock 122. The backplane may also include an acknowledge line 126 and a congestion line 128. The frame clock designates the start of a frame. Prior art FIG. 3 illustrates a frame format which preferably includes fifteen or sixteen system clock cycles, the first of which is designated the request field and the last of which includes a grant field. One or more other cycles may be assigned control and/or routing information and the remainder of the cycles comprise a data field of fixed length. During the request field, any number of bus users may request access which is received by the bus master. During the grant field, the bus master grants access to a selected bus user for the entire data portion of the next frame. Which user is granted access to the next frame is determined according to an arbitration algorithm in the bus master which may be unknown to the bus users. The asynchronous data transfer and source traffic control system has particular application in accommodating the transfer of the contents of ATM cells used in BISDN systems. More particularly, this co-owned technology is used in the manufacture of ATM switches and is sold under the brand name CellBus®.
In any telecommunications switch, it is often desirable to provide redundancy so that communications links are not discontinued by an equipment failure. The CellBus® technology supports up to thirty-two clients coupled to a single backplane (bus). A present manner of providing redundancy in a CellBus® switch utilizes the multicast capability inherent in the CellBus® technology. Multicasting allows a primary client and a backup client to continuously receive the identical traffic stream. After the data traffic has been received, the primary client continues operating on the data while the backup client may perform some subset of processing on the data. The primary and backup clients reverse roles in the system during a switch-over procedure.
According to the present manner of providing redundancy, each traffic flow (unique data stream) intended to be sent to both the primary and backup clients occupies one of the CellBus® multicast sessions. A CellBus® multicast session is described as a single traffic source client and multiple destination clients (recipients). Existing CellBus® devices are limited to 256 or 512 multicast sessions in the entire CellBus® system while the system may support thousands of unicast connections. Although there are not enough multicast sessions to be individually allocated to all required unicast connections, it is possible to multiplex multiple traffic flows onto a single CellBus® multicast session. However, this is undesirable because several traffic management functions are rendered useless with this approach. In particular, the following functions are disabled when multiplexing multiple traffic flows onto a single multicast session: ATM header translation, per traffic flow statistics, per VC queuing and scheduling, prioritization among the multicast traffic flows, and enforcement of an AAL5 packet discard policy during periods of congestion.